package com.example.BianLi;


import java.util.*;

/**
 * @author Jason
 * @PACKAGE_NAME com.example.数据遍历
 * @Description 基本操作
 * @date 2023-11-27 8:52
 */
public class traversal {
    public static void main(String[] args) {
        /*List<String> list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add(null);
        System.out.println("数组个数为" + list.size());
        System.out.println("第一个值为" + list.get(0));
        //遍历方法1: 迭代器Iterator遍历
        System.out.println("遍历方法一：通过迭代器Iterator进行遍历");
        Iterator iterator = list.iterator();
        while(iterator.hasNext()){
            String name = (String) iterator.next();
            System.out.println(name);
        }
        //遍历方法2: for循环遍历
        System.out.println("遍历方法二：使用for循环遍历");
        for (int i = 0;i < list.size();i++){
            System.out.println(list.get(i));
        }
        //遍历方法3: stream的forEach遍历
        System.out.println("遍历方法三：使用stream的forEach循环遍历（JDK1.8后新增）");
        list.forEach(item -> System.out.println(item));
        //遍历方法4: forEach遍历
        System.out.println("遍历方法四：使用foreach遍历");
        for (String item : list) {
            System.out.println(item);
        }*/

        Map<Integer,String> map = new HashMap<>();
        map.put(1+1,"一");
        map.put(2+1,"二");
        map.put(3+1,"三");
        map.put(4+1,"四");
        map.put(5+1,null);

        System.out.println("map的长度为" + map.size());

        // 遍历方法一：hashMap.entrySet()方法，通过迭代器Iterator进行遍历 效率高，推荐使用
        System.out.println("遍历方法一：.entrySet()方法-通过迭代器Iterator进行遍历");
        Iterator<Map.Entry<Integer, String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer, String> entry = iterator.next();
            System.out.println("key:" + entry.getKey() + "---Value+" + entry.getValue());
        }
        // 遍历方法二：hashMap.keySet()方法，通过迭代器Iterator进行遍历 效率低，不推荐使用
        System.out.println("遍历方法二：.keySet()方法-通过迭代器Iterator进行遍历");
        Iterator<Integer> iterator1 = map.keySet().iterator();
        while(iterator1.hasNext()){
            Integer key = iterator1.next();
            System.out.println("key:" + key + "---Value+" + map.get(key));
        }
        //遍历方法三：foreach方法来遍历keySet，和第二种没有什么区别
        System.out.println("遍历方法三：foreach方法来遍历keySet");
        Set keySet = map.keySet();
        for(Object key : keySet){
            System.out.println("key:" + key + "---value:" + map.get(key));
        }
        // 遍历方法四：使用stream的forEach（JDK1.8后新增）
        System.out.println("遍历方法四：使用stream的forEach（JDK1.8后新增）");
        map.forEach((key,value) -> System.out.println("key:" + key + "---value:" + map.get(key)));

    }


}
